2 research outputs found

    Learning Location from Shared Elevation Profiles in Fitness Apps: A Privacy Perspective

    Full text link
    The extensive use of smartphones and wearable devices has facilitated many useful applications. For example, with Global Positioning System (GPS)-equipped smart and wearable devices, many applications can gather, process, and share rich metadata, such as geolocation, trajectories, elevation, and time. For example, fitness applications, such as Runkeeper and Strava, utilize the information for activity tracking and have recently witnessed a boom in popularity. Those fitness tracker applications have their own web platforms and allow users to share activities on such platforms or even with other social network platforms. To preserve the privacy of users while allowing sharing, several of those platforms may allow users to disclose partial information, such as the elevation profile for an activity, which supposedly would not leak the location of the users. In this work, and as a cautionary tale, we create a proof of concept where we examine the extent to which elevation profiles can be used to predict the location of users. To tackle this problem, we devise three plausible threat settings under which the city or borough of the targets can be predicted. Those threat settings define the amount of information available to the adversary to launch the prediction attacks. Establishing that simple features of elevation profiles, e.g., spectral features, are insufficient, we devise both natural language processing (NLP)-inspired text-like representation and computer vision-inspired image-like representation of elevation profiles, and we convert the problem at hand into text and image classification problem. We use both traditional machine learning- and deep learning-based techniques and achieve a prediction success rate ranging from 59.59\% to 99.80\%. The findings are alarming, highlighting that sharing elevation information may have significant location privacy risks.Comment: 16 pages, 12 figures, 10 tables; accepted for publication in IEEE Transactions on Mobile Computing (October 2022). arXiv admin note: substantial text overlap with arXiv:1910.0904

    Static Analysis of the Build System to Accelerate Continuous Testing of Highly Configurable Software

    No full text
    Continuous testing is widely used for facilitating fast and reliable software delivery. However, build-time configurability makes such testing harder for configurable software. As configurable software forms the basis of much of our computing infrastructure, there is even more need for better continuous testing for configurable software. In this dissertation, our goal is to improve the quality of configurable software. To this end, we tackle two, previously unsolved problems. The build system of configurable software is one of the biggest reasons why testing configurable software is hard. Therefore, in our solutions, we deal with the build system by using a comprehensive formal model of the build system. As the key insight of our dissertation, we hypothesize that comprehensive formal modeling of the build system can facilitate improving the quality of configurable software. We use our problems and solution approaches to provide evidence for our thesis. The first problem we tackle is finding unmet dependency bugs in a given configuration specifications in Kconfig language, which is used in the Linux kernel\u27s build system. Unmet dependency bugs allow illegal configurations to pass through the build system, and can often cause broken builds, as much as 60% of the time. To address this problem, we created a verification-based bug finder, called kismet. kismet found hundreds of bugs and led to fixes committed into the Linux kernel\u27s codebase. It was integrated into one of the most prolific continuous testing infrastructures for the Linux kernel. The second problem we look at is finding a small set of Kconfig configurations that build all lines of an input patch, while being close to the settings of an input configuration. Testing tools can only test changes from a patch when the changed code is built into the binary, which is not guaranteed with most configurations that developers use for testing. To this end, we created an algorithm, called krepair, that automatically updates Kconfig configurations with small changes to build code changes from a given patch, i.e., to cover patches, while keeping the specific benefits of configurations used for testing. krepair increased the patch coverage by up to 37 times for a variety of configurations used in testing the Linux kernel by incurring changes between 0.1% to 35.7% when compared to the original configurations. We expect our studies to provide a foundation for future development of studies in this direction
    corecore